﻿using RbacPermissionSystem.Application.Admins.Dto;

namespace RbacPermissionSystem.Application.Admins
{
    public interface IAdminService
    {
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="registerDto"></param>
        /// <returns></returns>
        Task<ResultDto> Register(RegisterDto registerDto);
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="loginDto"></param>
        /// <returns></returns>
        Task<LoginResultDto<string>> LoginAsync(LoginDto loginDto);
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="createDto"></param>
        /// <returns></returns>
        Task<ResultDto> CreateAsync(AdminCreateDto createDto);
        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="AdminId"></param>
        /// <returns></returns>
        Task<ResultDto<AdminListDto>> GetAsync(int AdminId);
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="updateDto"></param>
        /// <returns></returns>
        Task<ResultDto> UpdateAsync(AdminUpdateDto updateDto);
        /// <summary>
        /// 单删
        /// </summary>
        /// <param name="AdminId"></param>
        /// <returns></returns>
        Task<ResultDto<bool>> DeleteAsync(int AdminId);
        /// <summary>
        /// 批删
        /// </summary>
        /// <param name="adminIds"></param>
        /// <returns></returns>
        Task<ResultDto<bool>> DeleteAsync(List<int> adminIds);
        /// <summary>
        /// 分页
        /// </summary>
        /// <param name="PageIndex"></param>
        /// <param name="PageSize"></param>
        /// <returns></returns>
        Task<ResultDto<(int, List<AdminListDto>)>> PageAsync(AdminSearchDto searchDto, int PageIndex = 1, int PageSize = 10);
    }
}